package com.lago.homework3.Exercise4;

import java.util.ArrayList;
import java.util.Scanner;

public class Student1 {
    public static ArrayList<Student1> st = new ArrayList<>();
    private String StudentId;
    private String Name;
    private String age;

    public Student1(String studentId, String name, String age) {
        this.StudentId = studentId;
        this.Name = name;
        this.age = age;
    }
    public Student1(){
    }
    @Override
    public String toString() {
        return "学生信息 [姓名=" + Name + ", 年龄=" + age + ", 学号=" + StudentId + "]";
    }

    public String getStudentId() {
        return StudentId;
    }

    public void setStudentId(String studentId) {
        StudentId = studentId;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
    // 欢迎模块
    public static void welcome(){
        System.out.println("学生信息管理系统");
        System.out.println("****欢迎您****");
    }
    //成绩汇总模块
    public static void look(ArrayList<Student1> li){
        System.out.println("学生信息汇总表:");
        System.out.println(li);
    }
    public static boolean Login(){
        welcome();
        String name1="admin";
        String password="admin";
        for(int i=3;i>0;i--){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入管理员用户名:");
            String user=sc.nextLine();
            System.out.println("请输入管理员登陆密码:");
            String Password=sc.nextLine();
            if(name1.equals(user)&&password.equals(Password)){
                System.out.println("用户名和密码格式输入正确，登陆成功");
                return true;
            }else{
                if(i==1){
                    System.out.println("用户名和密码连续错误3次，系统自动退出");
                    System.exit(0);
                }else{
                    System.out.println("输入错误，请从新输入，你还有"+(i-1)+"次机会");
                }
            }
        }
        return false;
    }
    //1.查询所有学生
    private static void printStudent(ArrayList<Student1> list) {
        if(list.size()==0){
            System.out.println("打印失败，没有学生信息，请先添加学生信息。");
            return;
        }
        for (int i=0;i<list.size();i++){
            Student1 s=list.get(i);
            System.out.println("学号"+s.getStudentId()+"\t"+"姓名"+s.getName()+"\t"+"年龄"+s.getAge());
        }
    }
    //2.按学号查找学生信息
    public static void check(ArrayList<Student1>li){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生学号查询学生信息:");
        for(int i=0;i<li.size();i++){
            if(li.get(i).getStudentId().equals(sc.nextLine())){
                System.out.println(li.get(i));
            }else{
                System.out.println("学生档案库里面没有该学号，请从新输入！");
            }
        }
    }

    //3.删除学生信息模块
    public static void delete(ArrayList<Student1>li){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生学号删除学生信息:");
        for(int i=0;i<li.size();i++){
            if(li.get(i).getStudentId().equals(sc.nextLine())){
                li.remove(i);
                System.out.println("学生信息删除成功！");
            }else{
                System.out.println("学生档案库里面没有该学号，请从新输入！");
            }
        }
    }


    //4.添加学生信息
    public static void addStudent(ArrayList<Student1> li) {
        Scanner sc1 = new Scanner(System.in);
        String id;

        while (true) {
            System.out.println("请输入学号：");
            id = sc1.nextLine();

            boolean flag = isUsed(li,id);
            if (flag) {
                System.out.println("您输入的学号相同，请重新输入：");
            } else {
                break;
            }
        }

        System.out.println("请输入姓名：");
        String name = sc1.nextLine();
        System.out.println("请输入年龄：");
        String age = sc1.nextLine();


        Student1 student = new Student1();
//        if (id == student.StudentId()){
//            System.out.println("该学号已占有，请重新输入：");
//
//        }else {
//            student.setStudentId(id);
//        }
           // student.getStudentId(id);
        student.setStudentId(id);
        student.setName(name);
        student.setAge(age);
        li.add(student);
        System.out.println("添加成功！");

    }

    private static boolean isUsed(ArrayList<Student1> li, String id) {

        boolean flag = false;

        for(int i=0; i< li.size(); i++) {
            Student1 student = li.get(i);
            if(student.getStudentId().equals(id)) {
                flag = true;
                break;
            }
        }

        return flag;
    }

    //5.修改学生信息模块
//    private static void updateStudent(List<Student> li) {
//        Scanner sc=new Scanner(System.in);
//        System.out.println("请输入修改学生信息的学号");
//        String updID=sc.nextLine();
//        int index = -1;
//        for (int i=0;i<li.size();i++){
//            Student s = li.get(i);
//            if (updID.equals(s.getStudentId())){
//                index = i;
//            }
//        }
//
//        if (index ==-1){
//            System.out.println("你要修改的学生不存在，请重新操作");
//        }else{
//            System.out.println("请输入学号");
//            String id = sc.nextLine();
//            System.out.println("请输入姓名");
//            String name = sc.nextLine();
//            System.out.println("请输入年龄");
//            String age = sc.nextLine();
//            Student student = new Student();
//            student.setStudentId(id);
//            student.setName(name);
//            student.setAge(age);
//            li.add(student);
//            //li.set(index,student);
//            System.out.println("修改学生信息成功！");
//        }
//    }
    public static void revise (ArrayList <Student1> li) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改信息的这位学生的学号:");
        for (int i = 0; i < li.size(); i++) {
            if (li.get(i).getStudentId().equals(sc.nextLine())) {
                Student1 st = new Student1();
                li.set(i, st);
                System.out.println("修改成功！");
            } else {
                System.out.println("学生档案库里面没有该学号，请从新输入！");
            }
        }
    }
    public static void run (ArrayList <Student1> li) {
        Scanner sc = new Scanner(System.in);
        if (Login()) {
            while (true) {
                System.out.println("   ****     学生信息管理系统      ****");
                System.out.println("****        1.查看所有学生信息       ****");
                System.out.println("****        2.查找学生的信息         ****");
                System.out.println("****        3.删除学生的信息         ****");
                System.out.println("****        4.添加学生的信息         ****");
                System.out.println("****        5.修改学生的信息         ****");
                System.out.println("****        6.退出系统              ****");
                System.out.println("-----------------------------------------");
                System.out.println("****     请输入你要进行的操作（1-6 ）   ****");
                switch (sc.nextLine()) {
                    case "1":
                        printStudent(li);
                        break;
                    case "2":
                        check(li);
                        break;
                    case "3":
                        delete(li);
                        break;
                    case "4":
                        addStudent(li);
                        break;
                    case "5":
                        revise(li);
                        break;
                    case "6":
                        System.exit(0);
                        break;
                    default:
                        System.out.println("请按照提示输入！");
                        break;
                }
            }
        }
    }
    public static void main (String[]args){
        run(st);
    }
}
